<?php
	function oh_debug_div_open() {
	   return '<div style="'
			. 'background:#ccc;'		
			. 'color:#700;'		
			. 'width:100%;'		
			. 'border:1px solid #777;'		
			. 'font-family:monospace;'		
			. 'font-size:14px;'		
			. 'margin-bottom:1px;'		
			. '">'
			. '<div style="'
			. 'margin:2px 5px 2px 5px;'		
			. '">';
	}
	
	function oh_debug_div_close() {
	   return '</div>'
			. '</div>';
	}

	function oh_debug_small_open() {
	   return '<div style="'
			. 'font-size:10px;'					
			. 'color:#555;'		
			. '">';
	}
	
	function oh_debug_small_close() {
	   return '</div>';
	}

	function oh_debug_pre_open() {
	   return '<pre style="'
			. 'color:#333;'		
			. 'font-family:monospace;'		
			. 'font-size:12px;'		
			. 'border:1px solid #aaa;'		
			. 'background:#f1f1f1;'		
			. 'margin:2px 0px 0px 0px;'		
			. 'padding:4px;'		
			. '">';
	}
	
	function oh_debug_pre_close() {
	   return '</pre>';
	}
	
	function oh_dump($o,$t="") {
		echo oh_debug_div_open();
			if ($t) {
				echo $t; 
			} else {
				echo '$'.oh_var_name($o);
			}
			echo oh_debug_small_open();
			echo oh_debug_at("oh_dump");			
			echo oh_debug_small_close();
			echo oh_debug_pre_open();			
			var_dump($o);
			echo oh_debug_pre_close();
		echo oh_debug_div_close();
	}
		
	function oh_code($code) {
		echo oh_debug_div_open();
		highlight_string('<?php '."\n".$code."\n".'?>');
		echo oh_debug_div_close();
	}
		
	function oh_message($msg, $stop = "oh") {
		echo oh_debug_div_open();				
		echo $msg;
		echo oh_debug_small_open();				
		echo oh_debug_at($stop);
		echo oh_debug_small_close();				
		echo oh_debug_div_close();
	}
	
	function oh_debug_at($stop = "oh") {
		$bt = debug_backtrace();
		foreach($bt as $k=>$v) {
			if (strtolower($v['function']) == $stop) {
				return 'in "'.$v['file'].'" at line '.$v['line'];
			}
		}	
	}	
?>
